結合テスト
このページでは、その使い方について説明します。integration_test
実行するパッケージ
統合テスト。このパッケージを使用して作成されたテストには次のものがあります。
プロパティ:
- との互換性
flutter drive
指図、 物理デバイスまたはエミュレータ上でテストを実行するため。 - 実行できる能力Firebase テスト ラボ、 さまざまなデバイスでの自動テストが可能になります。
- との互換性flutter_testAPI、 と同様のスタイルでテストを作成できるようにします。ウィジェットのテスト
概要
単体テスト、ウィジェットテスト、統合テスト
Flutter がサポートするテストには 3 種類があります。 あユニットテストはメソッドまたはクラスの動作を検証します。 あウィジェットのテストFlutter ウィジェットの動作を検証します アプリ自体を実行せずに。アン結合テスト(また エンドツーエンド テストまたは GUI テストと呼ばれます) は完全なアプリを実行します。
ホストとターゲット
開発中はおそらくコードを書いていると思います。 と呼ばれるデスクトップコンピュータ上で、ホストマシーン、 モバイルデバイス、ブラウザ上でアプリを実行し、 またはデスクトップ アプリケーションと呼ばれる、目標デバイス。 (Webをご利用の場合 ブラウザまたはデスクトップアプリケーション、 ホスト マシンはターゲット デバイスでもあります。)
統合テスト
で書かれたテストintegration_test
パッケージでは次のことができます。
- ターゲットデバイス上で直接実行できるため、テストが可能 Firebase Test Lab を使用した複数の Android または iOS デバイス。
- を使用して実行します
flutter test integration_test
。 - 使用
flutter_test
API、統合テストをさらに容易にする 書くようなウィジェットのテスト。
flutter_driver からの移行
を使用している既存のプロジェクトflutter_driver
に移行できますintegration_test
以下に従ってくださいflutter_drive からの移行ガイド。
プロジェクトのセットアップ
追加integration_test
とflutter_test
pubspec.yaml ファイルに次のように追加します。
dev_dependencies:
integration_test:
sdk: flutter
flutter_test:
sdk: flutter
プロジェクト内に新しいディレクトリを作成しますintegration_test/
新しいファイルを使用して、<name>_test.dart
:
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
void main() {
testWidgets('failing test example', (tester) async {
expect(2 + 2, equals(5));
});
}
ディレクトリ構造
lib/
...
integration_test/
foo_test.dart
bar_test.dart
test/
# Other unit tests go here.
以下も参照してください。
- 統合テストの使用法
flutterコマンドを使って実行する
これらのテストは次のコマンドで起動できます。flutter test
コマンド、ここで<DEVICE_ID>
:
オプションのデバイス ID またはパターンが表示されます
の出力でflutter devices
指図:
flutter test integration_test/foo_test.dart -d <DEVICE_ID>
これにより、テストが実行されますfoo_test.dart
。このディレクトリ内のすべてのテストを実行するには
デフォルトのデバイスで、次を実行します。
flutter test integration_test
ブラウザで実行する
初め、ChromeDriverをダウンロードしてインストールしますそしてポート 4444 で実行します。
chromedriver --port=4444
テストを実行するにはflutter drive
、新しいファイルを含む新しいディレクトリを作成します。test_driver/integration_test.dart
:
import 'package:integration_test/integration_test_driver.dart';
Future<void> main() => integrationDriver();
それから加えてIntegrationTestWidgetsFlutterBinding.ensureInitialized()
あなたの中でintegration_test/<name>_test.dart
ファイル:
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized(); // NEW
testWidgets('failing test example', (tester) async {
expect(2 + 2, equals(5));
});
}
別のプロセスで、実行しますflutter_drive
:
flutter drive \
--driver=test_driver/integration_test.dart \
--target=integration_test/counter_test.dart \
-d web-server
詳細については、を参照してください。Web での Flutter ドライバー テストの実行ウィキページ。
Firebase Test Lab でのテスト
Firebase Test Lab は Android の両方で使用できます。 iOS ターゲット。
Androidのセットアップ
の指示に従ってください。Android デバイスのテストREADME のセクション。
iOSのセットアップ
の指示に従ってください。iOSデバイスのテストREADME のセクション。
テスト ラボ プロジェクトのセットアップ
に行きますFirebaseコンソール、 新しいプロジェクトがない場合は作成します すでに。次に、次の場所に移動します品質 > テストラボ:
Android APK のアップロード
Gradle を使用して APK を作成します。
pushd android
# flutter build generates files in android/ for building the app
flutter build apk
./gradlew app:assembleAndroidTest
./gradlew app:assembleDebug -Ptarget=integration_test/<name>_test.dart
popd
どこ<name>_test.dart
で作成されたファイルですプロジェクトのセットアップセクション。
「デバッグ」APK を<flutter_project_directory>/build/app/outputs/apk/debug
にアンドロイドロボテストWeb ページ上のターゲット。
これにより、Robo テストが開始され、実行できるようになります。
その他のテスト:
クリックテストを実行する、 を選択計装テストタイプとドラッグ 次の 2 つのファイル:
<flutter_project_directory>/build/app/outputs/apk/debug/<file>.apk
<flutter_project_directory>/build/app/outputs/apk/androidTest/debug/<file>.apk
障害が発生した場合、 赤いアイコンを選択すると出力を表示できます。
コマンドラインから Android APK をアップロードする
を参照してください。README の Firebase Test Lab セクションコマンドラインからAPKをアップロードする手順については、「」を参照してください。
Xcode テストのアップロード
を参照してください。Firebase TestLab iOS の手順.zip ファイルをアップロードする方法の詳細については、 Firebase コンソールの Firebase TestLab セクションに移動します。
コマンドラインからの Xcode テストのアップロード
を参照してください。iOSデバイスのテストREADME のセクション .zip ファイルをアップロードする方法については、 コマンドラインから。